// components/turntable/turntable.js
import {
  config
} from "../../config.js"
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    awardSetting: {
      type: Array,
      value: []
    },
    typeName:{
      type:String,
      value:"",
      observer: function(newVal, oldVal){
        this.setData({
          drawType:newVal
        })
      }
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    drawType:'',//0是问答抽奖1是闯关
    zpData: {
      //转盘主图图片url
      equalParts: null, //一共多少等份
      oneAngle: null, //每一等份多少度		
      // ******** 转盘奖品数据：后台获取数据 ********
      //注：根据转盘图片对应的值（转盘图片指针处顺时针向右数，起始1，奖品对应的格子数【第几等份上】）
    },
    ifRoate: false, //转盘是否在转动（判断阻止多次点击）
    zpRotateDeg: '', //旋转角度
    // ******** 抽奖结果数据：后台获取数据 ********
    curKey: null, //抽奖结果 ： 取值范围 1 至 总格子数
    ifWinning: null, //是否中奖
  },
  /**
   * 组件的方法列表
   */
  methods: {
    updata(newVal) {
    	this.setData({
        drawType:newVal
      })
   },
    // 根据转盘初始数据设置转盘初始关键参数
    setZpDefault() {
      let equalPartsNum = this.data.awardSetting.length;
      let oneAngleNum = 360 / equalPartsNum;
      let equalParts = 'zpData.equalParts';
      let oneAngle = 'zpData.oneAngle';
      this.setData({
        //一共多少等份
        [equalParts]: equalPartsNum,
        // 根据转盘得等份数设置 每一等份多少度
        [oneAngle]: oneAngleNum,
      });
    },
    // 设置旋转动效
    setToRotate(degNum) {
      this.setData({
        zpRotateDeg: '-webkit-transform: rotate(' + degNum + 'deg);transform: rotate(' + degNum + 'deg);-webkit-transition: all 5s ease;transition: all 5s ease;',
      });
    },
    //根据 设置的 指针停止时指向的格子（中奖结果），设置其旋转角度区间
    setRotate(awardSettingNumber) { //awardSettingNumber  取值范围 1 至 总格子数
      setTimeout(() => {
        //转盘停止时 指针 指向的格子 最小角度
        let minAngle = 360 - awardSettingNumber * this.data.zpData.oneAngle + 5;
        //转盘停止时 指针 指向的格子 最大角度
        let maxAngle = 360 - (awardSettingNumber - 1) * this.data.zpData.oneAngle - 5;
        //旋转区间
        let newAngle = Math.floor(minAngle + Math.random() * (maxAngle - minAngle)) + 360 * 15;
        this.setToRotate(newAngle);
        setTimeout(() => {
          this.roateEnd(awardSettingNumber);
        }, 5150);
      }, 50);
    },
    //旋转结束执行
    roateEnd(awardSettingNumber) {
      console.log('当前指向格子数 -- ' + awardSettingNumber, this.data.curKey);
      console.log('当前指向格子数对应内容 -- ' + this.data.awardSetting[awardSettingNumber - 1], this.data.awardSetting[this.data.curKey - 1]);
      // // 是否中奖
      // if (this.data.ifWinning) {
      //   console.log('中奖');
      // } else {
      //   console.log('未中奖');
      // }
      setTimeout(() => {
        this.setData({
          ifRoate: false, //转盘是否在转动
        });
      }, 100);
      var resultObj = {
        curKey: this.data.curKey,
        ifWinning: this.data.ifWinning
      }
      this.triggerEvent("drawResult", resultObj)
    },
    //点击抽奖
    getLucky() {
      console.log(this.data.drawType);
      if (this.data.ifRoate) {
        return false;
      }
      this.setData({
        ifRoate: true, //转盘是否在转动
        zpRotateDeg: ''
      });
      // 请求后台获取抽奖结果中...
      //this.triggerEvent("getLotteryResult")
      /*test*/
      const openId = wx.getStorageSync('openid')
      var userInfo = wx.getStorageSync('userInfo')
      const avatar = escape(userInfo.avatarUrl)
      const nickname = escape(userInfo.nickName)
      if(this.data.drawType==='0'){
        var urlData = `${config.api_blink_url}/redbull/question/draw?openid=${openId}&nickname=${nickname}&avatar=${avatar}`
        
      } else {
        var urlData = `${config.api_blink_url}/redbull/g/draw?openid=${openId}&nickname=${nickname}&avatar=${avatar}`
      }
      wx.request({
        url: urlData,
        method: "post",
        header: {
          'content-type': 'application/json'
        },
        success: (res) => {
          if (res.data.code === 1) {
            if(this.data.drawType==='0'){
              var curKey = res.data.q.q_draw
            } else {
              var curKey = res.data.q.g_draw
            }
            this.setData({
              curKey: curKey,
              ifWinning: true
            });
            this.setRotate(this.data.curKey);
          } else {
            this.setData({
              ifRoate: false, //转盘是否在转动
            });
            wx.showToast({
              title: '抽奖机会已经用完！',
              icon: 'none',
              duration: 2000 //持续的时间
            })
          }
        }
      })
      // var res = {
      //   status: 1,
      //   //curKey:4,
      //   curKey: Math.floor(1 + Math.random() * this.data.zpData.equalParts), //抽奖结果 ： 取值范围 1 至 总格子数
      //   ifWinning: true, //是否中奖
      //   info: '没机会或什么什么'
      // }
      // /*test*/
      // if (res.status == 1) {
      //   this.setData({
      //     curKey: res.curKey,
      //     ifWinning: res.ifWinning
      //   });
      //   this.setRotate(this.data.curKey);
      // } else {
      //   this.setData({
      //     ifRoate: false, //转盘是否在转动
      //   });
      //   wx.showModal({
      //     title: '温馨提示',
      //     showCancel: false,
      //     content: res.info,
      //   })
      // }
    },
  },
  attached() {
    this.setZpDefault()
  }
})